package com.yxym.thread_;

public class Thread01 {
    public static void main(String[] args) {
        Cat cat = new Cat();//创建Cat对象，可以当线程使用...
        /**
         * public synchronized void start(){
         *      start0();
         * }
         * //start0() 是本地方法，是 JVM 调用, 底层是 c/c++实现
         * //真正实现多线程的效果， 是 start0(),
         * 而不是 run private native void start0();
         */

        cat.start();//启动一个线程->执行cat的run方法
        //cat.run();没有开出线程...
        // 主线程和主线程交替执行...
        //当main线程启动一个子线程Thread-0，主线程不会阻塞，继续执行
        System.out.println("主线程继续执行000" + Thread.currentThread().getName());//名字main
        for(int i = 0; i < 10; i++){
            System.out.println("主线程i=" + i);
            //主线程休眠...
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
/**
 * 当一个类继承了Thread 类，该类可以当做线程使用
 * 重写run 方法，
 * run Thread类实现了Runnable接口的run方法
 */
@SuppressWarnings({"all"})
class Cat extends Thread{
    int times = 0;
    @Override
    public void run() {//重写run方法...
        while (true) {
            System.out.println("hello world!" + (times++));
            //让线程休眠1秒ctrl+alt+t
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            if(times == 10 ){//增加一个判断语句
                break;
            }
        }
    }
}